/**
 * 
 */
package com.yidu.drug.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.yidu.drug.model.AuditModel;
import com.yidu.drug.model.InventoryModel;
import com.yidu.drug.model.QtSumModel;
import com.yidu.drug.model.RepertoryModel;

/**
 * 库存Service
 * @author tanglei
 * @date 2018年8月20日 上午9:47:20
 * @version 1.0
 */
public interface RepertoryService {
	/**
	 * 根据库存ID删除
	 * @param repId 传入是一个库存ID
	 * @return 返回一个影响的行数
	 */
    int deleteByPrimaryKey(String repId);

    /**
     * 增加库存数据(一次性增加所有字段)
     * @param record 传入一个库存对象
     * @return 返回一个影响的行数
     */
    int insert(RepertoryModel record);

    /**
     * 增加库存数据(可增加一个或多个字段)
     * @param record 传入一个库存对象
     * @return 返回一个影响的行数
     */
    int insertSelective(RepertoryModel record);

    /**
     * 根据库存ID查询
     * @param repId 传入一个库存ID
     * @return 返回一个库存对象
     */
    RepertoryModel selectByPrimaryKey(String repId);
    RepertoryModel selectByFilId(String filId,String pwId);
    /**
     * 根据库存ID修改(可修改 一个或多个字段)
     * @param record 传入一个库存对象
     * @return 返回一个影响的行数
     */
    int updateByPrimaryKeySelective(RepertoryModel record);

    /**
     * 根据库存ID修改(一次性修改全部字段)
     * @param record 传入一个库存对象
     * @return 返回一个影响的行数
     */
    int updateByPrimaryKey(RepertoryModel record);
    
    /**
   	 * 根据业务ID删除的方法
   	 * @param matTypeId 材料类型ID
   	 * @return 删除的行数
   	 */
   	int deleteByPwId(@Param("pwId")String pwId,@Param("repNumber")Long repNumber);
   	
   	/**
   	 * 根据分公司ID查询药品库存或者材料库存
   	 * @param record 传入一个库存对象
   	 * @return 返回一个map集合
   	 */
   	Map<String,Object> findAllDrugOrMaterials(RepertoryModel record);
   	
   	/**
   	 * 根据分公司ID查询物品名称和物品类型
   	 * @param record 传入一个库存对象
   	 * @return 返回一个list集合
   	 */
   	List<RepertoryModel> findAllItemNameAndItemType(RepertoryModel record);
    public void update(RepertoryModel repertory);
    /**
     * 根据分公司id查询库存id
     * @param filId
     * @return
     */
    public String findById(String filId);
    /**
     * 根据分公司id修改库存表数量
     * @param repNumber
     * @param filId
     * @return
     */
    public Object updates(Long repNumber,String filId);
    
    /**
     * 入库
     * @param 传入一个质检总报表对象
     * @return 返回一个字符串
     */
    String insertById(QtSumModel record);

   /**
    * 根据业务ID与分公司ID查询
    * @param record
    * @return
    */
    List<RepertoryModel> selectById(RepertoryModel record);

    /**
     * 根据分公司ID和业务ID查询
     * @param record 传入一个审核记录对象
     * @return 返回一个字符串
     */
    String findByFilIdAndPwId(AuditModel audit);

    /**
     * 根据业务ID和分公司ID修改数量
     * @param record
     * @return
     */
    String updateById(RepertoryModel record);
    
    /**
     * 根据业务ID查询库存数量
     * @param pwId 业务ID
     * @return 库存对象
     */
    RepertoryModel findByPwId(String pwId);
    
    /**
     * 根据分公司ID查询库存预警的总个数
     * @param filId 传入一个分公司ID
     * @return 返回一个总个数
     */
    Long findCount(String filId);
    /**
     * 修改状态
     * @param filId
     * @return
     */
    public String updateByfilId(String filId);
    
    /**
     * 根据分公司ID和业务Id查询库存id
     * @param pwId 业务Id
     * @param filId 公司ID
     * @return 库存id
     */
    public String findByFilIdPwId(String pwId,String filId);
}